#pragma once

#include "Singleton.h"

class Root : public Singleton<Root>
{
public:
	Root();
	~Root();
	
	RenderWindow* getRenderWindow() { return mRenderWindow; }

	bool Init();
	void Start();
	void Exit();

	SceneManager* CreateSceneManager(const std::string& name);
	void DestroySceneManager(SceneManager* sceneMgr);

	void Tick();
	void RenderOneFrame(float elapsedTime);
	void OnWindowResized(int widht, int height);


private:
	RenderWindow* mRenderWindow;
};
